In Takashi Horikawa, “Performance Analysis of a Client-Server System Using Queueing Networks: A Case Study,” Int. Trans. Opl Res. Vol. 4, No. 3, pp. 199-209, 1997, there is described an example of a technology to evaluate the performance of a system (hereinafter referred to as “server”) that concurrently processes a plurality of processing or computing requirements (hereinafter referred to as “transactions”).
According to the technology, an evaluation is made as to the performance of a server processing a plurality of transactions (mainly the relation between the throughput of the server and response times for transactions) by using performance basic data: the time spent on server resources (CPUs and disks) used to process a single transaction, and a performance evaluation model based on a queuing network theory.
Here, for example, as in a description shown in http://www.hyperformix.com/Default.asp?Page=210, a performance simulator may be used as the performance evaluation model. In this case, input data and output results of the performance evaluation are similar to those of the aforementioned technology.
With the performance evaluation model used in the technology, the performance is evaluated on the assumptions as follows:
1) The server resource time required to process a single transaction is unchanged even if there is a variation in the number of transactions to be processed by the server per unit of time
2) A plurality of transactions compete only for server resources corresponding to input data
Thus, for a server (including software that processes transactions) that satisfies those conditions, the result (the relation between the throughput of the server and response times for transactions) obtained by the performance evaluation model sufficiently reflects the actual server performance.
On the other hand, in the case of a server that does not satisfy the condition 1), the server has a bottleneck in the server resource whose utilization increases when processing a plurality of transactions.
Besides, in the case of a server that does not satisfy the condition 2), a factor that is not reflected in the performance evaluation model constitutes the bottleneck of the real server. Consequently, there occurs a problem (performance problem) that the performance thereof is lower than the result obtained by the performance evaluation model.
FIGS. 1 and 2 are diagrams showing conditions where a server having four CPUs (Central Processing Units) concurrently starts processing four transactions to illustrate concrete examples of the problem.
FIG. 1 shows the case where there is a process that requires exclusive control (that cannot be processed concurrently with other transactions) during transaction processing, and a busy wait is used by a CPU to obtain the execution permission.
In this case, it takes 3 units of CPU time to process a single transaction. In FIG. 1, however, the processing of transactions requires 3, 4, 5 and 6 units of CPU time, respectively. That is, on the average, the CPU time taken to process a single transaction increases to 4.5 units.
FIG. 2 shows the case where a process that requires exclusive control uses semaphores, etc. to obtain the execution permission without using a CPU. When not performing exclusive control, the server having four CPUs can process 4/3 transactions each requiring 3 units of CPU processing per unit of time. In FIG. 2, however, the semaphores used for exclusive control constitute a bottleneck, and the server can process only a single transaction per unit of time. Namely, the server performance is lower than the evaluation.
Additionally, in Japanese Patent Application laid open No. 2001-14189, for example, there has been proposed a technology to find a transaction processing process that constitutes a bottleneck in a transaction processing system. According to the technology, each transaction processing process is provided with an interface to send back CPU utilization time. The processing performance of each transaction processing process can be measured together with that of the entire transaction processing system, and the processing performances of the individual processes are measured at the same time.
The conventional technologies, however, have the following problems.
It is necessary to find and eliminate the bottleneck of a real server to solve the aforementioned performance problems so that the server performs as evaluated by the performance evaluation model. However, in the conventional technologies, there has been no standard method to find out the factor that causes the bottleneck and the cause (whether the bottleneck is caused as in the case of FIG. 1 or 2). Consequently, an expert who has a special knowledge has to check the operation of a server using a combination of various measurement tools to evaluate the bottleneck based on the results and his/her experience. In other words, the bottleneck can be detected by only limited experts. Further, a considerable amount of time is required to find the bottleneck, and if the expert has missed the evaluation, countermeasures taken afterwards come to nothing.
That is, in an information processing system, especially, in a server that concurrently processes a plurality of transactions, even if there is no problem in the operation for processing a single transaction, a bottleneck occurs on the occasion of concurrent processing of a plurality of transactions. As a result, the system or server may not be able to perform as originally expected. To take countermeasures against the problem, it is necessary to specify the factor that causes the bottleneck in transaction processing software in question and the cause. However, there has been no systematic method to accomplish such purpose, and an expert has tried to find the cause by appropriately using various tools for monitoring the operating condition of a server. This requires a considerable amount of time and presents a substantial human resource problem, resulting in an increase in system configuration costs.